在第二篇介紹中有提到,C#是一個強型別語言,變數要使用必須先進行型別宣告。電腦根據宣告的型別會給予該變數相對應的記憶體大小以及允許其作的運算,如數字可以加減乘除、布林只能表示真假...等。既然要進行宣告,那我們就必須要了解有哪些型別囉!
實質型別(Value Type):
變數的記憶體空間存放的是實際的值。如 int x=5,x的內容就是5。
實質型別有:簡單型別(帶/不帶正負號的整數、浮點數、字元、布林值)、列舉型別、結構型別、可為Null的實質型別。
參考型別(Reference Type):
變數的記憶體空間存放的是值的記憶體位置,也就是放值的記憶體第一個開頭的地方。如int[] A = new int[] {1,4,2}。A存的就是[1,4,2]的記憶體位置。當要讀取4的時候,就是讀取A[1]→A記憶體位置的第二個值。
註:陣列的第一個位置編號從0開始
參考型別有:類別(物件、字串、自訂類別)、介面型別、陣列、委派型別。
以下是C#基本資料型別,橘色的是比較常使用到的。
資料型別 變數名稱 = 內容
。注意,程式語言裡的等號不是等於的概念,而是把等號右邊賦值給左邊的概念。a = b → 賦予a一個b的值,或者是說,把b存進a裡。int a;//宣告a是一個可以存整數的變數
int a = 1;//宣告a是一個整數,且賦值1給a
char sex='F';//字元宣告用單引號
string apple="好吃";//字串宣告用雙引號
int a,b,c;//可以一次宣告多個同型別的變數
int a,b=0,c=1;//也可以同時賦值
const 資料型別 變數名稱 = 內容
const double Pi = 3.14;
使用var宣告的變數,會自動判斷資料型別。
如:
var a=1;//自動將a定義為int
var b="hello";//自動將b定義為string
考量程式碼可讀性,若是已經很確定型別,或是對值的正確性很敏感的話,不宜使用var。
感謝下方留言studyazure大大的補充,更多var介紹請看:
var用法介紹文章
[.NET]快快樂樂學LINQ系列前哨戰-var與匿名型別
宣告為某種型別的變數,只能存該型別的資料,否則則要進行型別轉換。
型別轉換方式有2種:
(欲轉換型別)
int b= (int)1.0;//把1.0強制轉成int
string a = "1234";
int b = Convert.ToInt32(a);//把a這個字串轉成int
string c = "2019/09/05";
DateTime d = Convert.ToDateTime(c);//把c這個字串轉成時間物件
string a = "1234";
int b = int.Parse(a);//把a這個字串轉成int
DateTime z = new DateTime(2019,9,5);
string y = z.ToString();//把DateTime形式轉成字串
懂得什麼是變數、常數以及如何宣告。恭喜你!你已經開啟寫程式碼的第一步了!
MSDN-型別與變數
浮點數不只是你想像的小數點
預設值表 (C# 參考)
C#的資料型別及資料型別轉換
var不是不能用,只要有良好的團隊規範,它可是個挺好用的東西。
不妨參考:https://dotblogs.com.tw/regionbbs/2017/11/03/csharp_explicit_type_vs_implicit_type
長知識!感謝大大補充!